home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / procssng / popi / popi.txt < prev   
Text File  |  1992-04-15  |  14KB  |  374 lines

  1.  
  2. /*  @(#)README 1.4 92/03/05
  3.  *
  4.  *  Popi v3.2.1
  5.  *
  6.  *  Popi was originally written by Gerard J. Holzmann - AT&T Bell Labs.
  7.  *  This version is based on the code in his Prentice Hall book,
  8.  *  "Beyond Photography - the digital darkroom," ISBN 0-13-074410-7,
  9.  *  which is copyright (c) 1988 by Bell Telephone Laboratories, Inc.
  10.  *
  11.  *  Permission is given to distribute these extensions, as long as these
  12.  *  introductory messages are not removed, and no monies are exchanged.
  13.  *
  14.  *  No responsibility is taken for any errors or inaccuracies inherent
  15.  *  either to the comments or the code of this program, but if reported
  16.  *  (see README file) then an attempt will be made to fix them.
  17.  */
  18.  
  19. Popi  -  README  -  January 1992.
  20.  
  21. ---------------------------------------------------------------------------
  22. CONTENTS:
  23.  
  24. 1. What is Popi?
  25. 2. Getting started.
  26. 3. Popi history.
  27. 4. Popi image format.
  28. 5. Acknowledgements.
  29. ---------------------------------------------------------------------------
  30.  
  31. 1. What is Popi?
  32. ----------------
  33.  
  34. Popi is a program that allows arbitrary transformations to be interactively
  35. applied to digital images. It is based on the program described in "Beyond
  36. Photography - The Digital Darkroom" by Gerald J. Holzmann.
  37. See the manual page for details of all the options available to you, plus
  38. examples of how to use them.
  39.  
  40. The graphical interface to popi can be very simple, or enhanced for a
  41. particular graphics environment.
  42.  
  43. [ IMPORTANT NOTE: the following graphics drivers worked correctly in the
  44.                   previous release of this software. They will mostly all
  45.                   need to be "ported" again. ]
  46.  
  47. Graphical device drivers are currently included for:
  48.     Amiga
  49.         Works with Lattice C 5.04, but you'ld better have at
  50.         least 2M of memory, or restrict yourself to small (128by128)
  51.         images.
  52.     Apollo
  53.     Atari terminal
  54.     Hewlett Packard
  55.     Kermit terminal
  56.     MGR
  57.     NeWS
  58.             Works with NeWS v1.1 and OpenWindows v1.0.
  59.         NeXT
  60.             Tested on a NeXT-Dimension system, works with NeXTstep 2.1.
  61.             It uses a screen-depth of 32 bits and leaves dithering to
  62.             the Display-Postscript system. It doesn't support :monochrome.
  63.     PC
  64.         Works with Turbo C, Microsoft C (including Quick C)
  65.         and Mix Software's Power C. There is support for
  66.         the common graphics cards (CGA, EGA, VGA, HGC) and
  67.         additionally, the Turbo C graphics library routines
  68.         can be used for non-standard cards if you have
  69.         the appropriate .BGI file.
  70.     SunView
  71.             Works with SunOS v3.x and SunOS v4.x.
  72.     X11
  73.             Works with X11R4 and X11R5.
  74.     XView
  75.             Needs the XView toolkit source distribution or Open Windows v1.0.
  76.     null
  77.         For those with no graphics screen, this enables
  78.         you to just use one of the printer options.
  79.  
  80. Output is available for:
  81.     PostScript
  82.     Epson printers.
  83.  
  84. This code has been tested on various Sun equipment (3's, 4's and 386i's)
  85. using the SunView, MGR, X11, NeWS and XView drivers, a Sequent using the
  86. Atari driver and X11 with a Sigma Data X terminal, a MIPS using an NCD X
  87. terminal and an Apollo DN1000 with the X11 driver. Plus the kermit and PC
  88. version of various PC's.
  89.  
  90. We'd be interested to hear what other machines you get it working on, so
  91. that we can keep this list up to date.
  92.  
  93. ----------
  94.  
  95. The latest version of popi is available via anonymous ftp from two sites:
  96.  
  97. nic.funet.fi [Finland] in the pub/graphics/programs/popi directory.
  98.  
  99.   Thanks to Juhana Kouhia <jk87377@cs.tut.fi> for providing this service.
  100.  
  101. wuarchive.wustl.edu [USA] in the graphics/graphics/popi directory.
  102.  
  103.   Thanks to George Kyriazis <kyriazis@wuarchive.wustl.edu> for providing
  104.   this service.
  105.  
  106. Pick the site nearest to you, and please try to restrict your connections
  107. to outside 9:00am - 5:00pm local time during weekdays.
  108.  
  109. ----------
  110.  
  111. There is a mailing list for people interested in popi. It is:
  112.  
  113.   popi@Aus.Sun.COM
  114.  
  115. To get added to the list, send a request to:
  116.  
  117.   popi-request@Aus.Sun.COM
  118.  
  119. Early patches are sent to the mailing list, plus active discussion on
  120. ideas for enhancements to popi, plus interesting popi transformations.
  121.  
  122.  
  123. 2. Getting started.
  124. -------------------
  125.  
  126. Initially there is no Makefile file present in the popi source directory.
  127. You will need to copy Makefile.dist to Makefile, then adjust accordingly.
  128.  
  129. You need to specify one of the following options to compile popi:
  130.  
  131.     make amiga      - to make the Amiga version.
  132.     make apollo     - to make the Apollo version.
  133.     make atari      - to make the Atari version.
  134.     make hp         - to make the HP version.
  135.     make ibmpc      - to make the PC version.
  136.     make kermit     - to make the Kermit version.
  137.     make mgr        - to make the MGR version.
  138.     make news       - to make the NeWS version.
  139.     make next       - to make the NeXT version.
  140.     make nulldev    - to make the null device version.
  141.     make sunview    - to make the SunView version.
  142.     make x11        - to make the X11 version.
  143.     make xview      - to make the XView version.
  144.  
  145. This should then be followed by a "make install". You might need super-user
  146. permission to do this successfully.
  147.  
  148. The manual pages describe how to use popi in detail, and include several
  149. examples.
  150.  
  151. The Makefile compilation details are setup to default to compiling the
  152. SunView version of popi on a Sun4 running SunOS v4.1. Note that there are
  153. various compilation definitions that might need uncommenting if you are
  154. trying to compile and run it on any other machine or graphics environment
  155. or operating system.
  156.  
  157. These are:
  158.  
  159. AR          - system library manipulation command.
  160. CC          - name your favorite C compiler.
  161. CP          - your system "copy" command.
  162. E           - suffix (including the `.') for executable files.
  163. EXE         - compiler option for specifying exectable name
  164. HASPOLL     - uncomment if you have the poll(2) system call.
  165. INSTALL     - the name of your install command (or : to install by hand).
  166. ISTACK      - uncomment if an integer evaluation stack should be used.
  167. LIBS        - specify any libraries needed.
  168. MGRHOME     - MGR only: home directory of the MGR installation.
  169. MGRINCDIR   - MGR only: location of the MGR include files.
  170. MGRPARAM    - MGR only: used to pass $MGRHOME to MGR.
  171. NEWSFILE    - NeWS only: location of the NeWS .ps file.
  172. NOSELECT    - uncomment if your machine doesn't have the select() call.
  173. O           - suffix used for object files.
  174. OCFLAGS     - specify any flags to be used with your C compiler.
  175. OLDFLAGS    - specify any extra flags to be passed to the linker.
  176. P           - Dynix (Sequent) only: uncomment if you have a parallel make.
  177. PFLAGS      - Dynix (Sequent) only: uncomment for parallel programming lib.
  178. PLIB        - Dynix (Sequent) only: uncomment for parallel programming lib.
  179. RANLIB      - system library manipulation command.
  180. RM          - your system "remove" command.
  181. SELTYPE     - uncomment for old select(2) calls.
  182. SYS         - system type: -DBSD for BSD unix or -DSYSV for System V unix.
  183. SIGRET      - uncomment if your signal function expects a void function.
  184. SUNFLOAT    - uncomment if you have a Sun with a floating point co-processor.
  185. USE_BZERO   - uncomment if your system has bzero instead of memset.
  186. X11R3       - uncomment if you are building the X11 version under X11R3.
  187. X11INCDIR   - X11 only: location of the X11 #include files.
  188. X11LIBDIR   - X11 only: location of the X11 libraries.
  189. XVIEWINCDIR - XView only: location of the XView #include files.
  190. XVIEWLIBDIR - XView only: location of the XView libraries.
  191.  
  192. See the Makefile for a more detailed description of each of these definitions.
  193.  
  194. If you need to make other changes in order to get popi to compile and run
  195. on your system, please let us know the details (see email addresses below),
  196. and we will try to include them into a future version.
  197.  
  198. Note that the Makefile is very generic. Considerable speedups can be obtained
  199. by using different compile and link options, plus inline libraries.
  200.  
  201. There is a TODO file included which lists current bugs, and the
  202. enhancements that will be added in the future.
  203.  
  204. Here are some possible settings for a variety of machines. Please send
  205. additional machine settings to the address below, to be included in this
  206. section.
  207.  
  208.   From Adrian F Clark <alien@essex.ac.uk>
  209.   Sun386i, vanilla X11R4 - no significant changes to the Makefile.
  210.  
  211.   From Harry Langenbacher <harry@neuronz.Jpl.Nasa.Gov>
  212.   Sun 4/75 gx, SunOS v4.1.1, SunView - no significant changes to the
  213.   Makefile.
  214.  
  215.   From Rainer Wieland <cadreor!rainer@nosun.West.Sun.COM>
  216.   Sun IPC, SunOS v4.1.1, X11R4 with twm, "make x11" with no changes to the
  217.   Makefile.
  218.  
  219.  
  220. 3. Popi history.
  221. ----------------
  222.  
  223. This program was first released to aus.sources in July 1989 in conjunction
  224. with a competition held prior to this year's Australian Unix User's Group
  225. Conference and Exhibition. The best transformation of Dennis Ritchie's face (as judged by Dennis) was put on T-shirts that were given to each conference
  226. delegate. Bug-fixes, improvements and new drivers were garnered. A number of
  227. vendors had popi running at the exhibition.
  228.  
  229.  
  230. 4. Popi Image format.
  231. ---------------------
  232.  
  233. Popi use the portable graymap file format for the grayscale images, and
  234. the portable pixmap file format for it's color images. These image formats
  235. are an integral part of the PBMPLUS extended portable bitmap toolkit
  236. distributed by Jef Poskanzer.
  237.  
  238. PBMPLUS provides comprehensive format conversion and image manipulation
  239. capabilities. The latest version is always available via anonymous FTP as
  240. export.lcs.mit.edu:contrib/pbmplus*.tar.Z and ftp.ee.lbl.gov:pbmplus*.tar.Z.
  241.  
  242. These routines (which have been isolated into libpbm.c and libpbm.h) are:
  243.  
  244. Copyright (C) 1989 by Jef Poskanzer.
  245.  
  246. Permission to use, copy, modify, and distribute this software and its
  247. documentation for any purpose and without fee is hereby granted, provided
  248. that the above copyright notice appear in all copies and that both that
  249. copyright notice and this permission notice appear in supporting
  250. documentation.  This software is provided "as is" without express or
  251. implied warranty.
  252.  
  253. If you have some image files in the old popi image format, they can be
  254. converted to pgm format by using the popitopgm filter. See the popi manual
  255. pages for more details.
  256.  
  257. This version of popi uses error diffusion floyd-steinberg dithering for
  258. displaying the images on monochrome screens. The routines to do this were
  259. taken from the xloadimage package.
  260.  
  261. These routines (which have been isolated into dither.c) are:
  262.  
  263. Copyright 1989, 1990 Kirk L. Johnson
  264. Copyright 1989, 1990 Jim Frost and Steve Losen.
  265.  
  266. Permission to use, copy, modify, distribute, and sell this
  267. software and its documentation for any purpose is hereby granted
  268. without fee, provided that the above copyright notice appear in
  269. all copies and that both that copyright notice and this
  270. permission notice appear in supporting documentation. The
  271. author makes no representations about the suitability of this
  272. software for any purpose. It is provided "as is" without express
  273. or implied warranty.
  274.  
  275. THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  276. INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
  277. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT
  278. OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  279. LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
  280. NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  281. CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  282.  
  283. 5. Acknowledgements.
  284. --------------------
  285.  
  286. Special thanks go to:
  287.  
  288.     Stephen Frede for writing the previous version of the lexical parser.
  289.  
  290.     Byron Rakitzis for the basis of the popi yacc grammar, and the various
  291.     associated routines (alloc.c, *gen.c, mk.c), plus the runtime assember
  292.     generating routines, taken from his pico implementation.
  293.  
  294.     Russ Nelson for implementing various changes to this version to
  295.     make it more efficient, particularly with the PC versions.
  296.  
  297.     Rich Morin for adding:
  298.  
  299.     * -c flag - color (RGB) calculation, display, and I/O
  300.                 (NTSC luma display on non-24-bit monitors)
  301.  
  302.     * -s flag, #signed - signed I/O
  303.  
  304.     * 24-bit monitor support under SunView
  305.  
  306.     * smallest unambiguous name recognition for special commands (eg, #r)
  307.  
  308.     * table-driven messages about special commands in #help
  309.  
  310.     * assorted bug fixes.
  311.  
  312. Thanks go to:
  313.  
  314.     Mark Andrews and Andrew Nicholson for help with the NeWS driver;
  315.  
  316.     Peter Chubb for the Amiga work;
  317.  
  318.     Frank Crawford for the kermit terminal driver;
  319.  
  320.     Eric Haines for the HP driver.
  321.  
  322.     Kirk L. Johnson, Jim Frost and Steve Losen for developing the
  323.     xloadimage package.
  324.  
  325.     Tim Lambert for the Apollo driver;
  326.  
  327.     Jef Poskanzer for developing the PBMPLUS package.
  328.  
  329.     John Pritchard and James Ashton for bug reports and fixes;
  330.  
  331.     Tim Roper for System V diffs.
  332.  
  333.     Stephan Wasserroth for (re)porting the NeXT driver, plus numerous
  334.     improvements including a floating point evaluation stack.
  335.  
  336. Also thanks to Tor Lillqvist for fixing up the X11 driver to work with an
  337. HP9000 Series 300 workstation (which incidentally fixes it to work on NCD
  338. terminals) and to Eric Haines for spotting several minor inefficiencies in
  339. the popi code.
  340.  
  341. Also thanks to the following for various bug reports, fixes and suggestions
  342. for improvement:
  343.  
  344.   Rob Beukers,
  345.   Tim Born,
  346.   Thomas M. Breuel,
  347.   Eli Chiprout,
  348.   Adrian F. Clark,
  349.   Ed Falk,
  350.   Jorgen Gustafsson,
  351.   Eric Haines,
  352.   Thomas Heller,
  353.   Steve Howell,
  354.   Glenn Huxtable,
  355.   Ling Kan,
  356.   Harry Langenbacher,
  357.   Thierry Leconte,
  358.   Martin A. Leisner
  359.   Dave Spensley,
  360.   Chris Stenton,
  361.   Rainer Wieland
  362.  
  363. Suggestions for furthur improvement would be most welcome, plus bugs,
  364. comments. Please direction all suggestions, bugs, and comments to the
  365. address below.
  366.  
  367. If you make any bug fixes changes or improvements please let me know so
  368. that I can add them to the main distribution. More device drivers are
  369. particularily welcome.
  370.  
  371.  
  372. Rich Burridge,          DOMAIN: richb@Aus.Sun.COM
  373. PHONE: +61 2 413 2666   UUCP:   ...!sun!sunaus!richb
  374.